home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 001-025 / scopedisk3 / 68kasm / src / history.log < prev    next >
Text File  |  1995-03-18  |  11KB  |  312 lines

  1.        A 6 8 K      M A I    N T E N    A N C E       H I S T O R Y
  2.  
  3.  
  4. Version    1.00 (Charlie Gibbs, June 18, 1987) - initial release
  5.  
  6.  
  7. Version    1.01 (Charlie Gibbs, August 20,    1987)
  8.  
  9.     The following bugs in version 1.00 have    been corrected:
  10.  
  11.           -    Long-word constants and    storage    areas were being
  12.         aligned    on a double-word boundary.  The    only place
  13.         where double-word alignment is now forced is at    a
  14.         break between SECTIONs,    since the length of an
  15.         AmigaDOS hunk must be a    multiple of 4 bytes.
  16.         (CNOP 0,4 can still be used if double-word
  17.         alignment is desired by    the programmer.)
  18.  
  19.           -    If a label on an END statement or the first statement
  20.         of a SECTION was named in an XDEF statement, it    would
  21.         not be written to the object code file.     The latter
  22.         case includes both the label of    a SECTION directive
  23.         and the    label of the first executable instruction in
  24.         the absence of any SECTION directives (defaulting to
  25.         an unnamed CODE    section).  In the final    case (default
  26.         unnamed    CODE section), references to XREF symbols
  27.         in the first statement would also not be written
  28.         to the object code file.
  29.  
  30.           -    If the last statement in the source file was not
  31.         terminated with    a newline character (premature EOF),
  32.         it was being ignored altogether.
  33.  
  34.           -    A register list    as the source operand of a MOVE
  35.         instruction was    not being flagged as an    error.
  36.         (MOVE to a register list was being flagged, however.)
  37.  
  38.           -    MOVE from USP was generating incorrect code.  Also,
  39.         MOVE from SR or    CCR to an address register was
  40.         generating incorrect code rather than being flagged.
  41.  
  42.  
  43. Version    1.02 (Charlie Gibbs, September 9, 1987)
  44.  
  45.     The following bugs in version 1.01 have    been corrected:
  46.  
  47.           -    Duplicate labels were not being    flagged.
  48.  
  49.           -    XDEF symbols were not being dumped to the
  50.         object code file when the -d option was    set.
  51.  
  52.     The following enhancements have    been added:
  53.  
  54.           -    A header file is now supported.     If the    parameter
  55.         -h<filespec> is    included on the    command    line, the
  56.         specified file will be included    as if the source
  57.         file's first line was " include <filespec>".
  58.         The file specification may include a path name,
  59.         although the include path names    given by the
  60.         -i parameter (if any) will also    be searched.
  61.  
  62.           -    An equate file can now be produced.  If    the parameter
  63.         -e<filespec> is    included on the    command    line, a    file
  64.         will be    written    containing EQU statements for any
  65.         symbol whose value is absolute.     If -e is specified
  66.         without    <filespec>, the    name of    the file will be
  67.         formed in the same way as the list file, except    with
  68.         an extension of    ".equ".
  69.  
  70.     The following changes have been    made to    existing logic:
  71.  
  72.           -    No symbol table    dump will be produced unless the
  73.         -x (cross-reference) switch is set.  Formerly a
  74.         symbol table dump was always produced, with only
  75.         the cross-reference portion optional.
  76.  
  77.  
  78. Version    1.03 (Charlie Gibbs, October 14, 1987)
  79.  
  80.     The following bugs in version 1.02 have    been corrected:
  81.  
  82.           -    The following situation    was causing phase errors:
  83.  
  84.                 xdef    label
  85.                 bra    label
  86.                  .
  87.                 <at    least 128 bytes    of object code>
  88.                  .
  89.             label:
  90.  
  91.         (The XDEF was fooling A68k into    thinking that "label"
  92.         was defined within 128 bytes of    the BRA    instruction
  93.         on pass    1, although on pass 2 it knew better.
  94.  
  95.           -    If the first operand of    an two-operand executable
  96.         instruction contained a    character term containing a
  97.         left or    right parenthesis, it would generate error
  98.         messages and be    incorrectly evaluated.
  99.  
  100.           -    Labels that don't begin in column 1 (denoted by a
  101.         trailing colon)    caused a Guru Meditation.
  102.  
  103.           -    Certain    ADD and    SUB instructions using PC-relative
  104.         addressing may cause phase errors.  If the displacement
  105.         is in the range    1 to 8 inclusive, the instruction was
  106.         erroneously converted to ADDQ or SUBQ during pass 2.
  107.  
  108.     The following enhancements have    been added:
  109.  
  110.           -    The -z option has been added to    display    the
  111.         current    source program line on stdout as it
  112.         is read, optionally over a given range.
  113.         This feature is    provided for debugging purposes.
  114.  
  115.           -    Bcc, BSR, and DBcc to labels in    other than the current
  116.         section    is now supported.  A 16-bit relocation entry
  117.         will be    generated for each such    reference.
  118.  
  119.           -    PC relative mode will be generated for backward
  120.         references to labels within the    current    CODE section
  121.         if legal for the current instruction.  Forward
  122.         references will    not be converted, since    there is
  123.         no way of telling which    section    the label is in
  124.         during pass 1.
  125.  
  126.           -    The cumulative sizes of    all sections by    type (i.e.
  127.         CODE, DATA, and    BSS) will be displayed at the end
  128.         of the listing file and    the console display.
  129.  
  130.           -    In the symbol table dump, section names    will no
  131.         longer be indicated just as SECTION, but rather
  132.         as CODE, DATA, or BSS, depending on type.
  133.  
  134.  
  135. Version    1.04 (Charlie Gibbs, October 21, 1987)
  136.  
  137.     The following bugs in version 1.03 have    been corrected:
  138.  
  139.           -    MOVE was being converted to MOVEQ regardless of
  140.         operand    size - this conversion is legal    only
  141.         for longword MOVEs.
  142.  
  143.           -    Modifications to version 1.03 caused bad relocatable
  144.         entries    to be generated.
  145.  
  146.  
  147. Version    1.05 (Charlie Gibbs, October 30, 1987)
  148.  
  149.     The following bugs in version 1.04 have    been corrected:
  150.  
  151.           -    If a section was continued later in the    program, e.g.
  152.  
  153.             SECTION    prog,CODE
  154.               <code>
  155.             SECTION    variables,BSS
  156.               <DS statements>
  157.             SECTION    prog,CODE
  158.               <more    code>
  159.  
  160.         bad relocation information was being generated for
  161.         the continuation of the    SECTION.  This bug was left
  162.         over from version 1.03.
  163.  
  164.     The following enhancements have    been added:
  165.  
  166.           -    All console output except for error messages is    now
  167.         sent to    stderr - this enables stdout to    be redirected,
  168.         producing an error file.
  169.  
  170.           -    Console    (stderr) output    has been modified to require
  171.         fewer lines on the screen.
  172.  
  173.           -    If an error occurs while expanding a macro or INCLUDE
  174.         file, the position of the call in each outer file is
  175.         given along with the position in the current (innermost)
  176.         file.  Tracing continues until the outermost file (i.e.
  177.         the original source file) is reached.
  178.  
  179.  
  180. Version    1.06 (Charlie Gibbs, March 6, 1988)
  181.  
  182.     The following bugs in version 1.05 have    been corrected:
  183.  
  184.           -    Lines skipped by IFxx/ENDC were    not being counted
  185.         in the line number given in error messages.
  186.  
  187.           -    DATA and BSS sections may be unnamed, or have names
  188.         the same as CODE sections.  Honest, I thought section
  189.         names had to be    unique even across types.
  190.  
  191.           -    CHIP and FAST options on the CODE, DATA, and BSS
  192.         synonyms for the SECTION directive were    not being
  193.         handled    correctly.
  194.  
  195.           -    XDEF records and symbol    table records (if desired)
  196.         were not being produced    for symbols defined ahead
  197.         of the first object-code producing instruction.
  198.  
  199.     The following enhancements have    been added:
  200.  
  201.           -    The CNOP instruction can now force alignment
  202.         relative to any    boundary up to 128 bytes.
  203.         The second operand must    still be a power of 2.
  204.  
  205.           -    The -q switch has been added to    change the frequency
  206.         with which progress reports (current line number) are
  207.         displayed on the console.  The default remains at
  208.         every 10 lines (-q10).    If you specify -q (no interval)
  209.         or -q0 the line    number displays    will be    suppressed.
  210.         This will make assemblies run slightly faster due to
  211.         reduced    console    I/O.
  212.  
  213.           -    The -t switch has been added to    keep any tabs in the
  214.         source file when producing the listing file, as    well as
  215.         generating tabs    elsewhere whenever possible.  This
  216.         speeds up assemblies and gives smaller listing files,
  217.         but such listing files cannot be displayed on devices
  218.         that do    not assume a tab stop in every 8th position.
  219.  
  220.           -    Any single-operand instruction with two    operands,
  221.         and any    no-operand instruction with any    operands,
  222.         will be    flagged.
  223.  
  224.           -    Relocatable 8- or 16-bit immediate operands
  225.         will be    flagged.  They blow up BLink.
  226.  
  227.           -    Named local labels are now supported.  Their names
  228.         are formed in the same way as normal labels, but are
  229.         then preceded by a backslash.  Their scope is the
  230.         same as    normal local labels (nnn$).
  231.  
  232.           -    An alignment error will    be flagged in the following cases:
  233.             Odd    displacement on    a LINK instruction
  234.             Bcc    or DBcc    to an odd address
  235.             In any word    or long-word instruction, any operand
  236.               using the    following addressing modes:
  237.             Address    register indirect with displacement
  238.             Address    register indirect with index and displacement
  239.             Absolute short
  240.             Absolute long
  241.             Program    counter    indirect with displacement
  242.             Program    counter    indirect with index and    displacement
  243.         LEA and    PEA instructions are exempt from these tests.
  244.  
  245.           -    If a section is    found to contain no data, A68k will
  246.         back up    to its beginning and overwrite it with the
  247.         next section.  The result is that null sections
  248.         will no    longer appear in the object file.
  249.  
  250.  
  251. Version    1.07 (Charlie Gibbs, March 11, 1988)
  252.  
  253.     The following bugs in version 1.06 have    been corrected:
  254.  
  255.           -    Instructions that take no operands (such as RTS)
  256.         were being flagged if they had comments    that were
  257.         not preceded by    a semicolon.
  258.  
  259.     The following enhancements have    been added:
  260.  
  261.           -    The following synonyms have been added:
  262.             CSEG  for CODE (Aztec compatibility)
  263.             DSEG  for DATA     "          "
  264.             ENDIF for ENDC (Assempro compatibility)
  265.             =     for EQU       "           "
  266.             |     for !       "           "
  267.  
  268.           -    Strings    and character values may be delimited by
  269.         either apostrophes (') or quotation marks (").
  270.         The character not used as a delimiter can be used
  271.         within the string without doubling it.    For example,
  272.             DC.B    "This is Charlie's assembler"
  273.         produces the same code as
  274.             DC.B    'This is Charlie''s assembler"
  275.  
  276.           -    The object code    file will be scratched if any errors
  277.         were found, unless the -k (keep) flag is set.
  278.  
  279.           -    The symbol .A68K is automatically defined at the
  280.         beginning of each assembly as a    SET symbol with    an
  281.         absolute value of 1.  This enables programs to check
  282.         whether    they're being assembled by this assembler.
  283.  
  284.           -    The symbol table insertion routine has been
  285.         greatly    speeded    up.
  286.  
  287.  
  288. Version    1.10 (Charlie Gibbs, March 20, 1988)
  289.  
  290.     The following bugs in version 1.07 have    been corrected:
  291.  
  292.           -    BSS sections were not being written to the object
  293.         code file except for a BSS section at the end of
  294.         a program.  This is due    to a bug in the    code added
  295.         in version 1.05    to overwrite null sections.
  296.  
  297.           -    If a source module contained a mixture of lengths
  298.         (8, 16,    or 32 bits) in external    references (XREF)
  299.         to the same label, all references were being treated
  300.         as if they has the length of the first reference.
  301.  
  302.     The following enhancements have    been added:
  303.  
  304.           -    DS operands that are either a forward references
  305.         or relocatable are now flagged.
  306.  
  307.           -    Short branches (Bcc.S, including BRA and BSR) to
  308.         the next instruction (i.e. a displacement of zero)
  309.         are illegal - the processor takes the displacement
  310.         from the next word.  Attempts to generate a short
  311.         displacement of    zero are now flagged.
  312.